﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CoopSaude.Dao;

namespace CoopSaude.Dto
{
	public class PacienteDto
	{
		#region public properties
		public int Id { get; set; }
		public string Nome { get; set; }
        public string NomeContatoEmergencial { get; set; }
        public string ResponsavelNome { get; set; }
        public string ResponsavelRg { get; set; }
        public string ResponsavelTel { get; set; }
        public string Rg { get; set; }
        public string TelCelular { get; set; }
        public string TelComercial { get; set; }
        public string TelResidencial { get; set; }
        public string TelContatoEmergencial { get; set; }
        public string Email { get; set; }
        public string Endereco { get; set; }
        public DateTime DataCadastro { get; set; }
        public DateTime DataNascimento { get; set; }
		#endregion

		#region constructors
		public PacienteDto()
		{
		}
		private PacienteDto(string nome)
		{
			Nome = nome;
		}
		private PacienteDto(int id, string nome)
		{
			Id = id;
			Nome = nome;
		}
		#endregion

        private PacienteDto(Pacientes.PacienteSoap paciente)
        {
            this.Id = Convert.ToInt32(paciente.id);
            this.Nome = paciente.nome;
            this.NomeContatoEmergencial = paciente.nomeContatoEmergencial;
            this.ResponsavelNome = paciente.responsavel.nomeResponsavel;
            this.ResponsavelRg = paciente.responsavel.rgResponsavel;
            this.ResponsavelTel = paciente.responsavel.telResponsavel;
            this.Rg = paciente.rg;
            this.TelCelular = paciente.telCelular;
            this.TelComercial = paciente.telComercial;
            this.TelContatoEmergencial = paciente.telContatoEmergencial;
            this.TelResidencial = paciente.telResidencial;
            this.DataCadastro = paciente.dataCadastro;
            this.DataNascimento = paciente.dataNascimento;
            this.Email = paciente.email;
            this.Endereco = paciente.endereco.logradouro +
                ", " + paciente.endereco.numero + " " + paciente.endereco.complemento + " " +
                paciente.endereco.bairro + " " + paciente.endereco.cep +
                " - " + paciente.endereco.cidade + ", " + paciente.endereco.estado;
        }

		#region public methods
		public static List<PacienteDto> BuscarPorNome(string nome)
		{
			List<PacienteDto> lista = new List<PacienteDto>();
            try
            {
                foreach (var paciente in PacienteDAO.BuscarPaciente(nome))
                {
                    lista.Add(new PacienteDto(paciente));
                }
            }
            catch (Exception e)
            {
                throw e;
            }
			
			return lista;
		}
		#endregion
	}
}